glMaterialf,
glMateriali, glMaterialfv, glMaterialiv
[New
- Windows 95, OEM Service Release 2]
These
functions specify material parameters for the lighting model.
void glMaterialf(
GLenum face, |
|
GLenum pname, |
|
GLfloat param |
|
); |
|
void glMateriali(
GLenum face, |
|
GLenum pname, |
|
GLint param |
|
); |
|
Parameters
face
The face or
faces that are being updated. Must be one of GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK.
pname
The
single-valued material parameter of the face or faces being updated. Must be
GL_SHININESS.
param
The value
that parameter GL_SHININESS will be set to.
void glMaterialfv(
GLenum face, |
|
GLenum pname, |
|
const GLfloat *params |
|
); |
|
void glMaterialiv(
GLenum face, |
|
GLenum pname, |
|
const GLint *params |
|
); |
|
Parameters
face
The face or
faces that are being updated. Must be one of GL_FRONT, GL_BACK, or
GL_FRONT_AND_BACK.
pname
The material
parameter of the face or faces being updated. The parameters that can be
specified using glMaterial, and their interpretations by the lighting
equation, are as follows:
GL_AMBIENT
The params
parameter contains four integer or floating-point values that specify the
ambient RGBA reflectance of the material. Integer values are mapped linearly
such that the most positive representable value maps to 1.0, and the most
negative representable value maps to -1.0. Floating-point values are mapped directly. Neither integer nor
floating-point values are clamped. The default ambient reflectance for both
front- and back-facing materials is (0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE
The params
parameter contains four integer or floating-point values that specify the
diffuse RGBA reflectance of the material. Integer values are mapped linearly
such that the most positive representable value maps to 1.0, and the most
negative representable value maps to -1.0. Floating-point values are mapped directly. Neither integer nor
floating-point values are clamped. The default diffuse reflectance for both
front- and back-facing materials is (0.8, 0.8, 0.8, 1.0).
GL_SPECULAR
The params
parameter contains four integer or floating-point values that specify the
specular RGBA reflectance of the material. Integer values are mapped linearly
such that the most positive representable value maps to 1.0, and the most
negative representable value maps to -1.0. Floating-point values are mapped directly. Neither integer nor
floating-point values are clamped. The default specular reflectance for both
front- and back-facing materials is (0.0, 0.0, 0.0, 1.0).
GL_EMISSION
The params
parameter contains four integer or floating-point values that specify the RGBA
emitted light intensity of the material. Integer values are mapped linearly
such that the most positive representable value maps to 1.0, and the most
negative representable value maps to -1.0. Floating-point values are mapped directly. Neither integer nor
floating-point values are clamped. The default emission intensity for both
front- and back-facing materials is (0.0, 0.0, 0.0, 1.0).
GL_SHININESS
The params
parameter is a single integer or floating-point value that specifies the RGBA
specular exponent of the material. Integer and floating-point values are mapped
directly. Only values in the range [0,128] are accepted. The default specular
exponent for both front- and back-facing materials is 0.
GL_AMBIENT_AND_DIFFUSE
Equivalent to
calling glMaterial twice with the same parameter values, once with
GL_AMBIENT and once with GL_DIFFUSE.
GL_COLOR_INDEXES
The params
parameter contains three integer or floating-point values specifying the color
indexes for ambient, diffuse, and specular lighting. These three values, and
GL_SHININESS, are the only material values used by the color-index mode
lighting equation. Refer to glLightModel
params
A pointer to
the value or values to which pname will be set.
Remarks
The glMaterial
function assigns values to material parameters. There are two matched sets of
material parameters. One, the front-facing set, is used to shade points,
lines, bitmaps, and all polygons (when two-sided lighting is disabled), or just
front-facing polygons (when two-sided lighting is enabled). The other set, back-facing,
is used to shade back-facing polygons only when two-sided lighting is enabled.
Refer to glLightModel
The glMaterial
function takes three arguments. The first, face, specifies whether the
GL_FRONT materials, the GL_BACK materials, or both GL_FRONT_AND_BACK materials
will be modified. The second, pname, specifies which of several
parameters in one or both sets will be modified. The third, params,
specifies what value or values will be assigned to the specified parameter.
Material
parameters are used in the lighting equation that is optionally applied to each
vertex. The equation is discussed in glLightModel
The material
parameters can be updated at any time. In particular, glMaterial can be
called between a call to glBegin
The following
function retrieves information related to glMaterial:
glGetMaterial
Error Codes
The following
are the error codes generated and their conditions.
Error
Code |
Condition |
GL_INVALID_ENUM
|
Either face
or pname was not an accepted value. |
GL_INVALID_VALUE
|
A specular
exponent outside the range [0,128] was specified. |
See Also